82 #define SLAVE_ADDRESS 0x48
89 WDT_A_hold(WDT_A_BASE);
92 CS_setDCOFreq(CS_DCORSEL_0,CS_DCOFSEL_0);
94 CS_initClockSignal(CS_ACLK,CS_VLOCLK_SELECT,CS_CLOCK_DIVIDER_1);
96 CS_initClockSignal(CS_SMCLK,CS_DCOCLK_SELECT,CS_CLOCK_DIVIDER_1);
98 CS_initClockSignal(CS_MCLK,CS_DCOCLK_SELECT,CS_CLOCK_DIVIDER_1);
107 GPIO_setAsPeripheralModuleFunctionInputPin(
109 GPIO_PIN6 + GPIO_PIN7,
110 GPIO_SECONDARY_MODULE_FUNCTION
119 EUSCI_B_I2C_initMasterParam
param = {0};
120 param.selectClockSource = EUSCI_B_I2C_CLOCKSOURCE_SMCLK;
121 param.i2cClk = CS_getSMCLK();
122 param.dataRate = EUSCI_B_I2C_SET_DATA_RATE_400KBPS;
123 param.byteCounterThreshold = 0;
124 param.autoSTOPGeneration = EUSCI_B_I2C_NO_AUTO_STOP;
125 EUSCI_B_I2C_initMaster(EUSCI_B0_BASE, &
param);
128 EUSCI_B_I2C_setSlaveAddress(EUSCI_B0_BASE,
133 EUSCI_B_I2C_setMode(EUSCI_B0_BASE,
134 EUSCI_B_I2C_TRANSMIT_MODE
138 EUSCI_B_I2C_enable(EUSCI_B0_BASE);
140 EUSCI_B_I2C_clearInterrupt(EUSCI_B0_BASE,
141 EUSCI_B_I2C_TRANSMIT_INTERRUPT0 +
142 EUSCI_B_I2C_NAK_INTERRUPT
146 EUSCI_B_I2C_enableInterrupt(EUSCI_B0_BASE,
147 EUSCI_B_I2C_TRANSMIT_INTERRUPT0 +
148 EUSCI_B_I2C_NAK_INTERRUPT
156 while (EUSCI_B_I2C_SENDING_STOP == EUSCI_B_I2C_masterIsStopSent
159 EUSCI_B_I2C_masterSendMultiByteStart(EUSCI_B0_BASE,
162 __bis_SR_register(CPUOFF + GIE);
174 #if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
175 #pragma vector=USCI_B0_VECTOR
177 #elif defined(__GNUC__)
178 __attribute__((interrupt(USCI_B0_VECTOR)))
182 switch(__even_in_range(UCB0IV, USCI_I2C_UCBIT9IFG))
186 case USCI_I2C_UCALIFG:
188 case USCI_I2C_UCNACKIFG:
190 EUSCI_B_I2C_masterSendStart(EUSCI_B0_BASE);
192 case USCI_I2C_UCTXIFG0:
196 EUSCI_B_I2C_masterSendMultiByteNext(EUSCI_B0_BASE,
TXData++);
202 EUSCI_B_I2C_masterSendMultiByteStop(EUSCI_B0_BASE);
MPU_initThreeSegmentsParam param
__bic_SR_register_on_exit(LPM3_bits|GIE)